package com.shujujiegou.排序.冒泡选择插入排序算法.冒泡排序;

/**
 * 1. 比较相邻元素，如果第一个元素比第二个元素大，就交换他们
 * 2. 对每一对相邻元素做如上操作，从开始第一对到结尾的最后一对。这一步做完后，最后的元素会是最大元素，完成了一波儿冒泡
 * 3. 对每一个元素进行这样的比较， 除了最后一个元素
 * 4. 持续每次对越来越少的元素进行上述比较，直到没有任何数字需要比较
 */
public class BubbleSort {
    public static void main(String[] args) {
        // 定义一个无序的数组
        int[] array = {8,3,0,2,5,8};

        // 进行冒泡对比
        for(int i = 0; i < array.length - 1; ++i) {
            for(int j = 0; j < array.length - 1 - i; ++j) {
                swapElement(j, j + 1, array);
            }
        }

        // 打印排序后的数组
        for(int i = 0; i < array.length; ++i) {
            System.out.println(array[i] + " ");
        }
    }

    private static void swapElement(int a, int b, int[] array) {
        if(array[a] > array[b]) {
            int temp = array[a];
            array[a] = array[b];
            array[b] = temp;
        }
    }
}
